package com.batdream.message.service;

import com.batdream.message.pojo.Users;
import com.batdream.message.pojo.vo.FriendRequestVo;
import com.batdream.message.utils.JSONResult;

import java.util.List;

public interface UserService {

    /**
     * 查询用户名是否存在
     * @param username 用户名
     * @return 是否存在
     */
    boolean queryUsername(String username);

    /**
     * 用户登录
     * @param users 登录信息
     * @return 返回值
     */
    JSONResult login(Users users) throws Exception;

    /**
     * 用户注册
     * @param users 注册信息
     * @return 用户信息
     */
    JSONResult register(Users users) throws Exception;

    /**
     * 修改用户记录
     * @param userId 用户id
     * @param saveBigImgUrl 大图
     * @param saveMicroImgUrl 小图
     */
    int updateUserImg(String userId, String saveBigImgUrl, String saveMicroImgUrl);

    /**
     * 根据用户id 获取用户记录
     * @param userId 用户id
     * @return 用户记录
     */
    Users queryUserById(String userId);

    /**
     * 更新用户昵称
     * @param users id 昵称
     * @return 返回
     */
    JSONResult updateNickName(Users users);

    /**
     * 查询根据用户名精确查询好友
     * @param myUserId 自己的用户id
     * @param friendUserName 搜索的用户名
     * @return 结果
     */
    JSONResult searchUser(String myUserId, String friendUserName);

    /**
     * 根据用户id和被添加用户id 发送好友请求消息
     * @param myUserId 用户id
     * @param friendId 被添加用户id
     * @return 结果
     */
    JSONResult addFirend(String myUserId, String friendId);

    /**
     * 根据请求的id 查询需要用户同意的好友请求
     * @param acceptUserId 用户id
     * @return 请求list
     */
    List<FriendRequestVo> queryFriendRequestList(String acceptUserId);

    /**
     * 用户id 和 被搜索的用户id 去查询 被搜索用户的信息
     * @param myUserId 用户id
     * @param friendId 被搜索用户的id
     * @return 返回
     */
    JSONResult scanQrCodeSearchUserById(String myUserId, String friendId);
}
